home *** CD-ROM | disk | FTP | other *** search
-
- {OK...for awhile I've been saying I'm going to post my unit for changing
- characters...well today's the day. This unit has one procedure called
- ProcessChar. You pass ProcessChar the ordinal value of the character
- you wish to process (between 0 and 255), the data that holds your new
- character or where you want to load the existing character, and if you
- want to load it or save it. There are also four constants that simulate
- a copyright symbol. One is bigger than the other (that's the only
- difference). You can replace characters with the copyright symbol so
- effectively you can have a legal C-in-a-circle in text mode!! Although,
- I do not know if this is actually legal, so don't mark my words... }
-
-
- Unit ModChar;
-
- { Unit Name: ModChar }
- { Author: Rob Perelman }
-
- Interface
-
- Const LoadChar=False;
- SaveChar=True;
-
- Type CharPic=Array[1..16] of Byte;
-
- Const CRLeft: CharPic=(0,31,48,99,198,140,140,140,140,140,140,198,99,48,
- 31,0);
- CRRight: CharPic=(0,248,12,198,99,1,1,1,1,1,33,99,198,12,248,0);
- BigCRLeft: CharPic=(31,48,96,195,134,140,140,140,140,140,140,134,
- 195,96,48,31);
- BigCRRight: CharPic=(248,12,6,195,97,1,1,1,1,1,33,97,195,6,12,
- 248);
-
- Procedure ProcessChar(CharNum: Byte; var Pic: CharPic; Which: Boolean);
-
- Implementation
-
- Uses Dos;
-
- Procedure ProcessChar(CharNum: Byte; var Pic: CharPic; Which: Boolean);
- Begin
- Inline($FA);
- PortW[$3C4]:=$0402;
- PortW[$3C4]:=$0704;
- PortW[$3CE]:=$0204;
- PortW[$3CE]:=$0005;
- PortW[$3CE]:=$0006;
- If Which then Move(Pic, Mem[$A000:CharNum*32], SizeOf(CharPic))
- Else Move(Mem[$A000:CharNum*32], Pic, SizeOf(CharPic));
- PortW[$3C4]:=$0302;
- PortW[$3C4]:=$0304;
- PortW[$3CE]:=$0004;
- PortW[$3CE]:=$1005;
- PortW[$3CE]:=$0E06;
- Inline($FB);
- End;
-
- End.